package com.chixing.day09_innerclass.innerclass;


import com.chixing.Homework.Order1.OrderApi;
import com.chixing.day09_innerclass.orderclass.EnterpriseOrder;
import com.chixing.day09_innerclass.orderclass.Order;
import com.chixing.day09_innerclass.orderclass.PersonalOrder;

public class OuterTest {
    public static void main(String[] args) {
        //外部类创建对象
       Outer outer=new Outer();
       outer.a=10;
       outer.fun();

       //成员内部类
       Outer.Inner in=outer.new Inner();  //内部类的创建对象  外部类对象.内部类名 new 对象
        Outer.Inner inn1;  //内部类的访问   外部类.内部类

        //静态内部类的创建对象
        Outer.Inner2 in2=new Outer.Inner2();  //外部类名.内部类名 new 对象

        Order o1=new PersonalOrder();
        OrderApi orderApi=new PersonalOrder();   //创建接口对象  子类对象PersonalOrder{实现接口中的方法
        Order orderApi2=new EnterpriseOrder();  //创建接口对象  子类对象nterpriseOrder{实现接口中的方法

        //创建接口对象  子类对象【匿名对象】  {实现接口中的方法}
        /*
        * new  OrderApi(){
        *  public Order orderClone(){
        * return null;
        *
        * }
        * */
//        OrderApi orderApi3= new OrderApi() {
//            OrderApi orderApi3=new OrderApi(){
//
//                @Override
//                public int getProdectNum() {
//                    return 0;
//                }
//
//                @Override
//                public void setProdectNum(int num) {
//
//                }
//            };
//
//
//            @Override
//            public int getProdectNum() {
//                return 0;
//            }
//
//            @Override
//            public void setProdectNum(int num) {
//
//            }
//        };
//        OrderApi orderApi3= new OrderApi() {
//            @Override
//            public int getProdectNum() {
//                return 0;
//            }
//
//            @Override
//            public void setProdectNum(int num) {
//
//            }
//
//            @Override
//            public Order orderClone(){
//                return null;
//            }
//        };
//        orderProcess(orderApi1);
//        orderProcess(orderApi2);
//        orderProcess(new OrderApi(){
//            @Override
//            public Order orderClone(){
//                return null;
//            }
//        });


    }
}
